Models for comparison

bfi_nostereo_comp <- lmer(bfi_targ_pmc ~ bfi_self_pmc*itt_comp_gmc +
                     (bfi_self_pmc | sub_id), data = clean_data_bfi)

bfi_nostereo_targ <- lmer(bfi_targ_pmc ~ bfi_self_pmc*target_condition +
                     (bfi_self_pmc | sub_id), data = clean_data_bfi)

comp_eli_randslopes <- lmer(eli_targ_pmc ~ eli_self_pmc*itt_comp_gmc + # itt does not work as a RE; model does not converge
                     (0 + eli_self_pmc | sub_id), 
                   data = clean_data_eli)

cond_eli_randslopes <- lmer(eli_targ_pmc ~ eli_self_pmc*target_condition + # itt does not work as a RE; model does not converge
                     (0 + eli_self_pmc | sub_id), 
                   data = clean_data_eli)

Residual Counter-projection - BFI

Only composite

Results

bfi_stereo_comp <- lmer(bfi_targ_pmc ~ bfi_self_pmc*itt_comp_gmc*bfi_stereo_pmc +
                     (bfi_self_pmc + bfi_stereo_pmc | sub_id), data = clean_data_bfi)
summary(bfi_stereo_comp)
## Linear mixed model fit by REML ['lmerMod']
## Formula: bfi_targ_pmc ~ bfi_self_pmc * itt_comp_gmc * bfi_stereo_pmc +  
##     (bfi_self_pmc + bfi_stereo_pmc | sub_id)
##    Data: clean_data_bfi
## 
## REML criterion at convergence: 21421.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.2701 -0.5006 -0.0365  0.6200  4.2064 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr       
##  sub_id   (Intercept)    0.12671  0.3560              
##           bfi_self_pmc   0.03947  0.1987    0.46      
##           bfi_stereo_pmc 0.06654  0.2580   -0.69 -0.07
##  Residual                0.70284  0.8384              
## Number of obs: 8056, groups:  sub_id, 424
## 
## Fixed effects:
##                                           Estimate Std. Error t value
## (Intercept)                               0.020974   0.020143   1.041
## bfi_self_pmc                              0.067192   0.012663   5.306
## itt_comp_gmc                             -0.258769   0.018832 -13.741
## bfi_stereo_pmc                            0.224519   0.015642  14.354
## bfi_self_pmc:itt_comp_gmc                -0.072592   0.011798  -6.153
## bfi_self_pmc:bfi_stereo_pmc              -0.017398   0.006252  -2.783
## itt_comp_gmc:bfi_stereo_pmc               0.190791   0.014562  13.102
## bfi_self_pmc:itt_comp_gmc:bfi_stereo_pmc -0.005255   0.005662  -0.928
## 
## Correlation of Fixed Effects:
##                (Intr) bf_sl_ itt_c_ bf_st_ bf_slf_pmc:t__ bf_slf_pmc:b__ i__:__
## bfi_slf_pmc     0.293                                                          
## itt_cmp_gmc    -0.001  0.008                                                   
## bfi_str_pmc    -0.480  0.052  0.026                                            
## bf_slf_pmc:t__  0.008 -0.026  0.287 -0.003                                     
## bf_slf_pmc:b__  0.140 -0.084 -0.009  0.073  0.046                              
## itt_cmp_:__     0.026 -0.004 -0.481 -0.060  0.052         -0.001               
## bf_s_:__:__    -0.010  0.046  0.142 -0.004 -0.079         -0.180          0.057
tab_model(bfi_stereo_comp)
  bfi_targ_pmc
Predictors Estimates CI p
(Intercept) 0.02 -0.02 – 0.06 0.298
bfi self pmc 0.07 0.04 – 0.09 <0.001
itt comp gmc -0.26 -0.30 – -0.22 <0.001
bfi stereo pmc 0.22 0.19 – 0.26 <0.001
bfi self pmc * itt comp
gmc
-0.07 -0.10 – -0.05 <0.001
bfi self pmc * bfi stereo
pmc
-0.02 -0.03 – -0.01 0.005
itt comp gmc * bfi stereo
pmc
0.19 0.16 – 0.22 <0.001
(bfi self pmc * itt comp
gmc) * bfi stereo pmc
-0.01 -0.02 – 0.01 0.353
Random Effects
σ2 0.70
τ00 sub_id 0.13
τ11 sub_id.bfi_self_pmc 0.04
τ11 sub_id.bfi_stereo_pmc 0.07
ρ01 0.46
-0.69
ICC 0.31
N sub_id 424
Observations 8056
Marginal R2 / Conditional R2 0.219 / 0.458

Comparison with model without stereotyping

anova(bfi_stereo_comp, bfi_nostereo_comp)
## Data: clean_data_bfi
## Models:
## bfi_nostereo_comp: bfi_targ_pmc ~ bfi_self_pmc * itt_comp_gmc + (bfi_self_pmc | sub_id)
## bfi_stereo_comp: bfi_targ_pmc ~ bfi_self_pmc * itt_comp_gmc * bfi_stereo_pmc + (bfi_self_pmc + bfi_stereo_pmc | sub_id)
##                   npar   AIC   BIC logLik deviance  Chisq Df
## bfi_nostereo_comp    8 23325 23381 -11654    23309          
## bfi_stereo_comp     15 21394 21499 -10682    21364 1944.4  7
##                              Pr(>Chisq)    
## bfi_nostereo_comp                          
## bfi_stereo_comp   < 0.00000000000000022 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Simple Slopes

threat_levels = list(itt_comp_gmc = c(-1.07, 0.0, 1.07))
simpslopes_bfi_stereo2 <- emtrends(bfi_stereo_comp, ~ itt_comp_gmc,
                              var ="bfi_self_pmc",
                              at = c(threat_levels))


simpslopes_bfi_stereo2
##  itt_comp_gmc bfi_self_pmc.trend     SE  df asymp.LCL asymp.UCL
##         -1.07            0.14512 0.0181 Inf    0.1096    0.1807
##          0.00            0.06757 0.0127 Inf    0.0427    0.0924
##          1.07           -0.00999 0.0177 Inf   -0.0446    0.0246
## 
## Degrees-of-freedom method: asymptotic 
## Confidence level used: 0.95
test(simpslopes_bfi_stereo2)
##  itt_comp_gmc bfi_self_pmc.trend     SE  df z.ratio p.value
##         -1.07            0.14512 0.0181 Inf   8.002  <.0001
##          0.00            0.06757 0.0127 Inf   5.331  <.0001
##          1.07           -0.00999 0.0177 Inf  -0.566  0.5717
## 
## Degrees-of-freedom method: asymptotic
pairs(simpslopes_bfi_stereo2)
##  contrast       estimate     SE  df z.ratio p.value
##  (-1.07) - 0      0.0776 0.0126 Inf   6.138  <.0001
##  (-1.07) - 1.07   0.1551 0.0253 Inf   6.138  <.0001
##  0 - 1.07         0.0776 0.0126 Inf   6.138  <.0001
## 
## Degrees-of-freedom method: asymptotic 
## P value adjustment: tukey method for comparing a family of 3 estimates

Visualization

bfi_stereo_comp_df <- effect("bfi_self_pmc:itt_comp_gmc",
                         xlevels = list(itt_comp_gmc = c(-1.07, 0.0, 1.07)),
                         mod = bfi_stereo_comp)

bfi_stereo_comp_df <- as.data.frame(bfi_stereo_comp_df)
bfi_stereo_comp_df$itt_comp_gmc <- as.factor(bfi_stereo_comp_df$itt_comp_gmc)

ggplot(bfi_stereo_comp_df, aes(bfi_self_pmc, fit, group = itt_comp_gmc)) +
  geom_smooth(method = "lm", 
                size = .7, 
                se = FALSE,
                colour = "black", 
                aes(linetype = itt_comp_gmc)) +
    theme_minimal(base_size = 13) +
    theme(legend.key.size = unit(1, "cm")) +
  scale_linetype_manual("Target-level threat",
                        breaks = c("-1.07", "0", "1.07"), 
                       labels = c("Low",
                                  "Average",
                                  "High"),
                       values = c("solid",
                                  "dashed",
                                  "dotted")) +
    labs(x = "BFI responses for self",
       y = "BFI responses for target")

Assumptions

# checking normality of conditional residuals
qqnorm(residuals(bfi_stereo_comp), main="Q-Q plot for conditional residuals")

# checking the normality of the random effects (here random intercept):
qqnorm(ranef(bfi_stereo_comp)$sub_id$bfi_self_pmc,
       main="Q-Q plot for the self random effect")

qqnorm(ranef(bfi_stereo_comp)$sub_id$bfi_stereo_pmc,
       main="Q-Q plot for the stereotyping random effect")

# Checking residuals for intercept
qqnorm(ranef(bfi_stereo_comp)$sub_id$`(Intercept)`,
       main="Q-Q plot for the random intercept")

plot_model(bfi_stereo_comp, type='diag')
## [[1]]

## 
## [[2]]
## [[2]]$sub_id

## 
## 
## [[3]]

## 
## [[4]]

Also seems to have slight tails, basically when stereotyping is added to the model

Only target variable

Results

bfi_stereo_targ <- lmer(bfi_targ_pmc ~ bfi_self_pmc*target_condition*bfi_stereo_pmc +
                     (bfi_self_pmc + bfi_stereo_pmc | sub_id), data = clean_data_bfi)
summary(bfi_stereo_targ)
## Linear mixed model fit by REML ['lmerMod']
## Formula: bfi_targ_pmc ~ bfi_self_pmc * target_condition * bfi_stereo_pmc +  
##     (bfi_self_pmc + bfi_stereo_pmc | sub_id)
##    Data: clean_data_bfi
## 
## REML criterion at convergence: 21340.1
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.2464 -0.5115 -0.0147  0.6157  4.1866 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr       
##  sub_id   (Intercept)    0.09682  0.3112              
##           bfi_self_pmc   0.03829  0.1957    0.46      
##           bfi_stereo_pmc 0.05383  0.2320   -0.61 -0.04
##  Residual                0.70369  0.8389              
## Number of obs: 8056, groups:  sub_id, 424
## 
## Fixed effects:
##                                                    Estimate Std. Error t value
## (Intercept)                                       0.3829478  0.0307099  12.470
## bfi_self_pmc                                      0.1629014  0.0211286   7.710
## target_conditionLOSS                             -0.8128246  0.0452597 -17.959
## target_conditionWARM                             -0.3514308  0.0438284  -8.018
## bfi_stereo_pmc                                   -0.0498397  0.0247279  -2.016
## bfi_self_pmc:target_conditionLOSS                -0.1968343  0.0310241  -6.345
## bfi_self_pmc:target_conditionWARM                -0.1022632  0.0300178  -3.407
## bfi_self_pmc:bfi_stereo_pmc                      -0.0140133  0.0107222  -1.307
## target_conditionLOSS:bfi_stereo_pmc               0.5804411  0.0361282  16.066
## target_conditionWARM:bfi_stereo_pmc               0.3191316  0.0349720   9.125
## bfi_self_pmc:target_conditionLOSS:bfi_stereo_pmc -0.0112412  0.0153390  -0.733
## bfi_self_pmc:target_conditionWARM:bfi_stereo_pmc  0.0001332  0.0148092   0.009
## 
## Correlation of Fixed Effects:
##             (Intr) bf_sl_ tr_LOSS tr_WARM bf_st_ bf__:_LOSS bf__:_WARM b__:__
## bfi_slf_pmc  0.273                                                           
## trgt_cnLOSS -0.679 -0.185                                                    
## trgt_cnWARM -0.701 -0.192  0.475                                             
## bfi_str_pmc -0.402  0.084  0.273   0.282                                     
## bf_s_:_LOSS -0.186 -0.681  0.275   0.130  -0.057                             
## bf_s_:_WARM -0.192 -0.704  0.131   0.286  -0.059  0.479                      
## bf_slf_p:__  0.158 -0.090 -0.107  -0.111   0.074  0.061      0.063           
## trg_LOSS:__  0.275 -0.058 -0.405  -0.193  -0.684  0.080      0.041     -0.050
## trg_WARM:__  0.284 -0.060 -0.193  -0.390  -0.707  0.041      0.087     -0.052
## b__:_LOSS:_ -0.110  0.063  0.147   0.077  -0.051 -0.088     -0.044     -0.699
## b__:_WARM:_ -0.114  0.065  0.078   0.162  -0.053 -0.044     -0.069     -0.724
##             t_LOSS: t_WARM: b__:_LOSS:
## bfi_slf_pmc                           
## trgt_cnLOSS                           
## trgt_cnWARM                           
## bfi_str_pmc                           
## bf_s_:_LOSS                           
## bf_s_:_WARM                           
## bf_slf_p:__                           
## trg_LOSS:__                           
## trg_WARM:__  0.484                    
## b__:_LOSS:_  0.062   0.036            
## b__:_WARM:_  0.036   0.089   0.506
tab_model(bfi_stereo_targ)
  bfi_targ_pmc
Predictors Estimates CI p
(Intercept) 0.38 0.32 – 0.44 <0.001
bfi self pmc 0.16 0.12 – 0.20 <0.001
target condition [LOSS] -0.81 -0.90 – -0.72 <0.001
target condition [WARM] -0.35 -0.44 – -0.27 <0.001
bfi stereo pmc -0.05 -0.10 – -0.00 0.044
bfi self pmc * target
condition [LOSS]
-0.20 -0.26 – -0.14 <0.001
bfi self pmc * target
condition [WARM]
-0.10 -0.16 – -0.04 0.001
bfi self pmc * bfi stereo
pmc
-0.01 -0.04 – 0.01 0.191
target condition [LOSS] *
bfi stereo pmc
0.58 0.51 – 0.65 <0.001
target condition [WARM] *
bfi stereo pmc
0.32 0.25 – 0.39 <0.001
(bfi self pmc * target
condition [LOSS]) * bfi
stereo pmc
-0.01 -0.04 – 0.02 0.464
(bfi self pmc * target
condition [WARM]) * bfi
stereo pmc
0.00 -0.03 – 0.03 0.993
Random Effects
σ2 0.70
τ00 sub_id 0.10
τ11 sub_id.bfi_self_pmc 0.04
τ11 sub_id.bfi_stereo_pmc 0.05
ρ01 0.46
-0.61
ICC 0.27
N sub_id 424
Observations 8056
Marginal R2 / Conditional R2 0.248 / 0.448

Comparison with model without stereotyping

anova(bfi_stereo_targ, bfi_nostereo_targ)
## Data: clean_data_bfi
## Models:
## bfi_nostereo_targ: bfi_targ_pmc ~ bfi_self_pmc * target_condition + (bfi_self_pmc | sub_id)
## bfi_stereo_targ: bfi_targ_pmc ~ bfi_self_pmc * target_condition * bfi_stereo_pmc + (bfi_self_pmc + bfi_stereo_pmc | sub_id)
##                   npar   AIC   BIC logLik deviance  Chisq Df
## bfi_nostereo_targ   10 23285 23355 -11632    23265          
## bfi_stereo_targ     19 21306 21439 -10634    21268 1997.1  9
##                              Pr(>Chisq)    
## bfi_nostereo_targ                          
## bfi_stereo_targ   < 0.00000000000000022 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Simple slopes

targ_levels <-list(target_condition = c("CONTROL", "LOSS", "WARM"))
simpslopes_bfi_stereo_targ <- emtrends(bfi_stereo_targ, ~ target_condition,
                              var ="bfi_self_pmc",
                              at = targ_levels)


simpslopes_bfi_stereo_targ 
##  target_condition bfi_self_pmc.trend     SE  df asymp.LCL asymp.UCL
##  CONTROL                      0.1632 0.0212 Inf    0.1217    0.2047
##  LOSS                        -0.0334 0.0227 Inf   -0.0780    0.0112
##  WARM                         0.0609 0.0213 Inf    0.0191    0.1028
## 
## Degrees-of-freedom method: asymptotic 
## Confidence level used: 0.95
test(simpslopes_bfi_stereo_targ)
##  target_condition bfi_self_pmc.trend     SE  df z.ratio p.value
##  CONTROL                      0.1632 0.0212 Inf   7.716  <.0001
##  LOSS                        -0.0334 0.0227 Inf  -1.468  0.1420
##  WARM                         0.0609 0.0213 Inf   2.856  0.0043
## 
## Degrees-of-freedom method: asymptotic
pairs(simpslopes_bfi_stereo_targ)
##  contrast       estimate     SE  df z.ratio p.value
##  CONTROL - LOSS   0.1966 0.0311 Inf   6.330  <.0001
##  CONTROL - WARM   0.1023 0.0300 Inf   3.404  0.0019
##  LOSS - WARM     -0.0943 0.0312 Inf  -3.025  0.0070
## 
## Degrees-of-freedom method: asymptotic 
## P value adjustment: tukey method for comparing a family of 3 estimates

Visualization

bfi_stereo_targ_df <- effect("bfi_self_pmc:target_condition",
                         xlevels = list(target_condition = c("CONTROL",
                                                             "WARM",
                                                             "LOSS")),
                         mod = bfi_stereo_targ)

bfi_stereo_targ_df <- as.data.frame(bfi_stereo_targ_df)
bfi_stereo_targ_df$target_condition <- as.factor(bfi_stereo_targ_df$target_condition)

bfi_stereo_targ_df %<>% 
  mutate(target_condition = forcats::fct_relevel(target_condition, c("CONTROL", "WARM", "LOSS")))

ggplot(bfi_stereo_targ_df, aes(bfi_self_pmc, fit, group = target_condition)) +
  geom_smooth(method = "lm", 
                size = .7, 
                se = FALSE,
                colour = "black", 
                aes(linetype = target_condition)) +
    theme_minimal(base_size = 13) +
    theme(legend.key.size = unit(1, "cm")) +
  scale_linetype_manual("Target variable",
                        breaks = c("CONTROL", "WARM", "LOSS"), 
                       labels = c("Least threatening",
                                  "Medium threatening",
                                  "Most threatening"),
                       values = c("solid",
                                  "dashed",
                                  "dotted"))+
    labs(x = "BFI responses for self",
       y = "BFI responses for target")

Assumptions

# checking normality of conditional residuals
qqnorm(residuals(bfi_stereo_targ), main="Q-Q plot for conditional residuals")

# checking the normality of the random effects 
qqnorm(ranef(bfi_stereo_targ)$sub_id$bfi_self_pmc,
       main="Q-Q plot for the self random effect")

qqnorm(ranef(bfi_stereo_targ)$sub_id$bfi_stereo_pmc,
       main="Q-Q plot for the stereotyping random effect")

# Checking residuals for intercept
qqnorm(ranef(bfi_stereo_targ)$sub_id$`(Intercept)`,
       main="Q-Q plot for the random intercept")

plot_model(bfi_stereo_targ, type='diag')
## [[1]]

## 
## [[2]]
## [[2]]$sub_id

## 
## 
## [[3]]

## 
## [[4]]

Definitely a tail, but only a few points, so most likely robust; stereo is the worst, may need to transform it

Residual Counter-projection - ELI

Threat composite only

comp_eli_stereo <- lmer(eli_targ_pmc ~ eli_self_pmc*itt_comp_gmc*eli_stereo_pmc + # itt does not work as a RE; model does not converge
                     (0 + eli_self_pmc + eli_stereo_pmc | sub_id), 
                   data = clean_data_eli) # Same as above, works with clean_data but not the smaller df specific to this analysis


summary(comp_eli_stereo)
## Linear mixed model fit by REML ['lmerMod']
## Formula: eli_targ_pmc ~ eli_self_pmc * itt_comp_gmc * eli_stereo_pmc +  
##     (0 + eli_self_pmc + eli_stereo_pmc | sub_id)
##    Data: clean_data_eli
## 
## REML criterion at convergence: 11416.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.6808 -0.5355  0.0171  0.5988  3.4913 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr 
##  sub_id   eli_self_pmc   0.02599  0.1612        
##           eli_stereo_pmc 0.07400  0.2720   -0.01
##  Residual                0.75865  0.8710        
## Number of obs: 4240, groups:  sub_id, 424
## 
## Fixed effects:
##                                            Estimate Std. Error t value
## (Intercept)                               0.0011854  0.0134003   0.088
## eli_self_pmc                              0.0275174  0.0136422   2.017
## itt_comp_gmc                              0.0004259  0.0125165   0.034
## eli_stereo_pmc                            0.2737683  0.0187626  14.591
## eli_self_pmc:itt_comp_gmc                -0.0615540  0.0127172  -4.840
## eli_self_pmc:eli_stereo_pmc               0.0047924  0.0089489   0.536
## itt_comp_gmc:eli_stereo_pmc               0.1379914  0.0174409   7.912
## eli_self_pmc:itt_comp_gmc:eli_stereo_pmc  0.0120902  0.0081329   1.487
## 
## Correlation of Fixed Effects:
##                (Intr) el_sl_ itt_c_ el_st_ el_slf_pmc:t__ el_slf_pmc:l__ i__:__
## eli_slf_pmc     0.000                                                          
## itt_cmp_gmc     0.000  0.003                                                   
## eli_str_pmc    -0.002 -0.012  0.000                                            
## el_slf_pmc:t__  0.003 -0.020  0.000  0.031                                     
## el_slf_pmc:l__ -0.006  0.050  0.061 -0.004 -0.006                              
## itt_cmp_:__     0.000  0.030 -0.002 -0.038 -0.012         -0.026               
## el_s_:__:__     0.060 -0.007 -0.005 -0.025  0.045         -0.097         -0.001
tab_model(comp_eli_stereo,
          digits = 3)
  eli_targ_pmc
Predictors Estimates CI p
(Intercept) 0.001 -0.025 – 0.027 0.930
eli self pmc 0.028 0.001 – 0.054 0.044
itt comp gmc 0.000 -0.024 – 0.025 0.973
eli stereo pmc 0.274 0.237 – 0.311 <0.001
eli self pmc * itt comp
gmc
-0.062 -0.086 – -0.037 <0.001
eli self pmc * eli stereo
pmc
0.005 -0.013 – 0.022 0.592
itt comp gmc * eli stereo
pmc
0.138 0.104 – 0.172 <0.001
(eli self pmc * itt comp
gmc) * eli stereo pmc
0.012 -0.004 – 0.028 0.137
Random Effects
σ2 0.76
τ00  
τ00  
τ11 sub_id.eli_self_pmc 0.03
τ11 sub_id.eli_stereo_pmc 0.07
ρ01 sub_id -0.01
ICC 0.16
N sub_id 424
Observations 4240
Marginal R2 / Conditional R2 0.149 / 0.287

Comparing to model without stereotyping

anova(comp_eli_randslopes, comp_eli_stereo)
## Data: clean_data_eli
## Models:
## comp_eli_randslopes: eli_targ_pmc ~ eli_self_pmc * itt_comp_gmc + (0 + eli_self_pmc | sub_id)
## comp_eli_stereo: eli_targ_pmc ~ eli_self_pmc * itt_comp_gmc * eli_stereo_pmc + (0 + eli_self_pmc + eli_stereo_pmc | sub_id)
##                     npar   AIC   BIC  logLik deviance  Chisq Df
## comp_eli_randslopes    6 12219 12257 -6103.3    12207          
## comp_eli_stereo       12 11386 11462 -5680.9    11362 844.88  6
##                                Pr(>Chisq)    
## comp_eli_randslopes                          
## comp_eli_stereo     < 0.00000000000000022 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Simple slopes

comp_stereo_simpslopes_eli <- emtrends(comp_eli_stereo, ~ itt_comp_gmc,
                              var ="eli_self_pmc",
                              at = threat_levels)

comp_stereo_simpslopes_eli
##  itt_comp_gmc eli_self_pmc.trend     SE  df asymp.LCL asymp.UCL
##         -1.07             0.0934 0.0195 Inf  0.055240  0.131520
##          0.00             0.0275 0.0136 Inf  0.000779  0.054256
##          1.07            -0.0383 0.0191 Inf -0.075732 -0.000958
## 
## Degrees-of-freedom method: asymptotic 
## Confidence level used: 0.95
test(comp_stereo_simpslopes_eli)
##  itt_comp_gmc eli_self_pmc.trend     SE  df z.ratio p.value
##         -1.07             0.0934 0.0195 Inf   4.799  <.0001
##          0.00             0.0275 0.0136 Inf   2.017  0.0437
##          1.07            -0.0383 0.0191 Inf  -2.010  0.0444
## 
## Degrees-of-freedom method: asymptotic
pairs(comp_stereo_simpslopes_eli)
##  contrast       estimate     SE  df z.ratio p.value
##  (-1.07) - 0      0.0659 0.0136 Inf   4.840  <.0001
##  (-1.07) - 1.07   0.1317 0.0272 Inf   4.840  <.0001
##  0 - 1.07         0.0659 0.0136 Inf   4.840  <.0001
## 
## Degrees-of-freedom method: asymptotic 
## P value adjustment: tukey method for comparing a family of 3 estimates

Visualization

comp_stereo_eli_maineffect <- effect("eli_self_pmc:itt_comp_gmc",
                         xlevels = list(itt_comp_gmc = c(-1.07, 0, 1.07)),
                         mod = comp_eli_stereo)

comp_stereo_eli_maineffect <- as.data.frame(comp_stereo_eli_maineffect)
comp_stereo_eli_maineffect$itt_comp_gmc <- as.factor(comp_stereo_eli_maineffect$itt_comp_gmc)

ggplot(comp_stereo_eli_maineffect, aes(eli_self_pmc, fit, group = itt_comp_gmc)) +
  geom_smooth(method = "lm", 
                size = .7, 
                se = FALSE,
                colour = "black", 
                aes(linetype = itt_comp_gmc)) +
    theme_minimal(base_size = 13) +
    theme(legend.key.size = unit(1, "cm")) +
  scale_linetype_manual("Target-level threat",
                        breaks = c(-1.07, 0, 1.07), 
                       labels = c("Low",
                                  "Average",
                                  "High"),
                       values = c("solid",
                                  "dashed",
                                  "dotted")) +
    labs(x = "ELI responses for self",
       y = "ELI responses for target")

Assumptions

# checking normality of conditional residuals
qqnorm(residuals(comp_eli_stereo), main="Q-Q plot for conditional residuals")

# checking the normality of the random effects:
qqnorm(ranef(comp_eli_stereo)$sub_id$eli_self_pmc,
       main="Q-Q plot for the self random effect")

# looking at random effect for stereo:
qqnorm(ranef(comp_eli_stereo)$sub_id$eli_stereo_pmc,
       main="Q-Q plot for the self random effect")

plot_model(comp_eli_stereo, type='diag')
## [[1]]

## 
## [[2]]
## [[2]]$sub_id

## 
## 
## [[3]]

## 
## [[4]]

Heavy tail and outliers?

Targ condition

cond_eli_stereo <- lmer(eli_targ_pmc ~ eli_self_pmc*eli_stereo_pmc*target_condition + # itt does not work as a RE; model does not converge
                     (0 + eli_self_pmc + eli_stereo_pmc | sub_id), 
                   data = clean_data_eli) # Same as above, works with clean_data but not the smaller df specific to this analysis


summary(cond_eli_stereo)
## Linear mixed model fit by REML ['lmerMod']
## Formula: eli_targ_pmc ~ eli_self_pmc * eli_stereo_pmc * target_condition +  
##     (0 + eli_self_pmc + eli_stereo_pmc | sub_id)
##    Data: clean_data_eli
## 
## REML criterion at convergence: 11373.6
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.6819 -0.5429  0.0178  0.6014  3.2908 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr
##  sub_id   eli_self_pmc   0.02347  0.1532       
##           eli_stereo_pmc 0.06215  0.2493   0.12
##  Residual                0.75803  0.8707       
## Number of obs: 4240, groups:  sub_id, 424
## 
## Fixed effects:
##                                                    Estimate Std. Error t value
## (Intercept)                                       0.0002328  0.0224160   0.010
## eli_self_pmc                                      0.1338943  0.0224289   5.970
## eli_stereo_pmc                                    0.0810428  0.0300435   2.698
## target_conditionLOSS                              0.0007506  0.0330904   0.023
## target_conditionWARM                             -0.0002031  0.0320206  -0.006
## eli_self_pmc:eli_stereo_pmc                      -0.0051313  0.0151045  -0.340
## eli_self_pmc:target_conditionLOSS                -0.2153508  0.0329531  -6.535
## eli_self_pmc:target_conditionWARM                -0.1332556  0.0320985  -4.151
## eli_stereo_pmc:target_conditionLOSS               0.4645453  0.0444925  10.441
## eli_stereo_pmc:target_conditionWARM               0.1863188  0.0424698   4.387
## eli_self_pmc:eli_stereo_pmc:target_conditionLOSS  0.0344047  0.0218068   1.578
## eli_self_pmc:eli_stereo_pmc:target_conditionWARM  0.0070513  0.0214247   0.329
## 
## Correlation of Fixed Effects:
##              (Intr) el_sl_ el_st_ t_LOSS t_WARM el__:__ el_sl_:_LOSS
## eli_slf_pmc  -0.002                                                 
## eli_str_pmc  -0.001  0.030                                          
## trgt_cnLOSS  -0.677  0.001  0.000                                   
## trgt_cnWARM  -0.700  0.001  0.000  0.474                            
## el_slf_p:__  -0.031  0.053  0.021  0.021  0.021                     
## el_sl_:_LOSS  0.001 -0.681 -0.020  0.000 -0.001 -0.036              
## el_sl_:_WARM  0.001 -0.699 -0.021 -0.001  0.000 -0.037   0.476      
## el_st_:_LOSS  0.000 -0.020 -0.675  0.000  0.000 -0.014   0.043      
## el_st_:_WARM  0.000 -0.021 -0.707  0.000 -0.001 -0.015   0.014      
## e__:__:_LOS   0.021 -0.037 -0.014 -0.003 -0.015 -0.693   0.038      
## e__:__:_WAR   0.022 -0.037 -0.015 -0.015 -0.010 -0.705   0.025      
##              el_sl_:_WARM el_st_:_LOSS el_st_:_WARM e__:__:_L
## eli_slf_pmc                                                  
## eli_str_pmc                                                  
## trgt_cnLOSS                                                  
## trgt_cnWARM                                                  
## el_slf_p:__                                                  
## el_sl_:_LOSS                                                 
## el_sl_:_WARM                                                 
## el_st_:_LOSS  0.014                                          
## el_st_:_WARM  0.037        0.478                             
## e__:__:_LOS   0.026        0.014        0.010                
## e__:__:_WAR   0.061        0.010       -0.014        0.488
tab_model(cond_eli_stereo,
          digits = 3)
  eli_targ_pmc
Predictors Estimates CI p
(Intercept) 0.000 -0.044 – 0.044 0.992
eli self pmc 0.134 0.090 – 0.178 <0.001
eli stereo pmc 0.081 0.022 – 0.140 0.007
target condition [LOSS] 0.001 -0.064 – 0.066 0.982
target condition [WARM] -0.000 -0.063 – 0.063 0.995
eli self pmc * eli stereo
pmc
-0.005 -0.035 – 0.024 0.734
eli self pmc * target
condition [LOSS]
-0.215 -0.280 – -0.151 <0.001
eli self pmc * target
condition [WARM]
-0.133 -0.196 – -0.070 <0.001
eli stereo pmc * target
condition [LOSS]
0.465 0.377 – 0.552 <0.001
eli stereo pmc * target
condition [WARM]
0.186 0.103 – 0.270 <0.001
(eli self pmc * eli
stereo pmc) * target
condition [LOSS]
0.034 -0.008 – 0.077 0.115
(eli self pmc * eli
stereo pmc) * target
condition [WARM]
0.007 -0.035 – 0.049 0.742
Random Effects
σ2 0.76
τ00  
τ00  
τ11 sub_id.eli_self_pmc 0.02
τ11 sub_id.eli_stereo_pmc 0.06
ρ01 sub_id 0.12
ICC 0.14
N sub_id 424
Observations 4240
Marginal R2 / Conditional R2 0.167 / 0.286

Comparing to model without stereotyping

anova(cond_eli_randslopes, cond_eli_stereo)
## Data: clean_data_eli
## Models:
## cond_eli_randslopes: eli_targ_pmc ~ eli_self_pmc * target_condition + (0 + eli_self_pmc | sub_id)
## cond_eli_stereo: eli_targ_pmc ~ eli_self_pmc * eli_stereo_pmc * target_condition + (0 + eli_self_pmc + eli_stereo_pmc | sub_id)
##                     npar   AIC   BIC  logLik deviance  Chisq Df
## cond_eli_randslopes    8 12216 12267 -6100.1    12200          
## cond_eli_stereo       16 11337 11438 -5652.3    11305 895.55  8
##                                Pr(>Chisq)    
## cond_eli_randslopes                          
## cond_eli_stereo     < 0.00000000000000022 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Simple Slopes

simpslopes_eli_stereo_cond <- emtrends(cond_eli_stereo, ~ target_condition,
                              var ="eli_self_pmc",
                              at = targ_levels)


simpslopes_eli_stereo_cond
##  target_condition eli_self_pmc.trend     SE  df asymp.LCL asymp.UCL
##  CONTROL                    0.133894 0.0224 Inf    0.0899    0.1779
##  LOSS                      -0.081456 0.0241 Inf   -0.1288   -0.0341
##  WARM                       0.000639 0.0230 Inf   -0.0444    0.0456
## 
## Degrees-of-freedom method: asymptotic 
## Confidence level used: 0.95
pairs(simpslopes_eli_stereo_cond)
##  contrast       estimate     SE  df z.ratio p.value
##  CONTROL - LOSS   0.2154 0.0330 Inf   6.535  <.0001
##  CONTROL - WARM   0.1333 0.0321 Inf   4.151  0.0001
##  LOSS - WARM     -0.0821 0.0333 Inf  -2.464  0.0366
## 
## Degrees-of-freedom method: asymptotic 
## P value adjustment: tukey method for comparing a family of 3 estimates

Visualization

# interactions::interact_plot(compcond_eli_stereo, pred = eli_self_pmc, modx = itt_comp_gmc, mod2 = target_condition, interval = TRUE)

eli_stereo_cond <- effect("eli_self_pmc:target_condition",
                         xlevels = list(target_condition = c("CONTROL",
                                                             "WARM",
                                                             "LOSS")),
                         mod = cond_eli_stereo)

eli_stereo_cond <- as.data.frame(eli_stereo_cond)
eli_stereo_cond$target_condition <- as.factor(eli_stereo_cond$target_condition)

eli_stereo_cond %<>% 
  mutate(target_condition = forcats::fct_relevel(target_condition, c("CONTROL", "WARM", "LOSS")))

target_labels <- c("CONTROL" = "Control target",
                   "WARM" = "Warm target",
                   "LOSS" = "Loss target")

ggplot(eli_stereo_cond, aes(eli_self_pmc, fit, group = target_condition)) +
  geom_smooth(method = "lm", 
                size = .7, 
                se = FALSE,
                colour = "black", 
                aes(linetype = target_condition)) +
    theme_minimal(base_size = 13) +
    theme(legend.key.size = unit(1, "cm")) +
  scale_linetype_manual("Target Variable",
                        breaks = c("CONTROL", "WARM", "LOSS"), 
                       labels = c("Least threatening",
                                  "Medium threatening",
                                  "High threatening"),
                       values = c("solid",
                                  "dashed",
                                  "dotted")) +
    labs( x = "ELI responses for self",
       y = "ELI responses for target")

Assumptions

# checking normality of conditional residuals
qqnorm(residuals(cond_eli_stereo), main="Q-Q plot for conditional residuals")

# checking the normality of the random effects:
qqnorm(ranef(cond_eli_stereo)$sub_id$eli_self_pmc,
       main="Q-Q plot for the self random effect")

# looking at random effect for stereo:
qqnorm(ranef(cond_eli_stereo)$sub_id$eli_stereo_pmc,
       main="Q-Q plot for the self random effect")

plot_model(cond_eli_stereo, type='diag')
## [[1]]

## 
## [[2]]
## [[2]]$sub_id

## 
## 
## [[3]]

## 
## [[4]]

Checking effect of removing UO participants - BFI

No stereotyping

Only composite

data_bfi_prolific <- clean_data_bfi %>% 
  filter(data_site != "uo") %>% 
  select(sub_id, bfi_number, bfi_targ_pmc, bfi_self_pmc, itt_comp_gmc,
         target_condition, bfi_targ, bfi_self, bfi_stereo, bfi_stereo_pmc) %>% 
  unique() %>% 
  na.omit() 

bfi_nostereo_comp_pro <- lmer(bfi_targ_pmc ~ bfi_self_pmc*itt_comp_gmc +
                     (bfi_self_pmc | sub_id), data = data_bfi_prolific)
summary(bfi_nostereo_comp_pro)
## Linear mixed model fit by REML ['lmerMod']
## Formula: bfi_targ_pmc ~ bfi_self_pmc * itt_comp_gmc + (bfi_self_pmc |  
##     sub_id)
##    Data: data_bfi_prolific
## 
## REML criterion at convergence: 22328.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.7520 -0.6118 -0.0211  0.6556  3.5462 
## 
## Random effects:
##  Groups   Name         Variance Std.Dev. Corr
##  sub_id   (Intercept)  0.15466  0.3933       
##           bfi_self_pmc 0.05776  0.2403   0.65
##  Residual              0.94523  0.9722       
## Number of obs: 7695, groups:  sub_id, 405
## 
## Fixed effects:
##                            Estimate Std. Error t value
## (Intercept)                0.001278   0.022604   0.057
## bfi_self_pmc               0.005070   0.014922   0.340
## itt_comp_gmc              -0.290318   0.021185 -13.704
## bfi_self_pmc:itt_comp_gmc -0.137288   0.013909  -9.870
## 
## Correlation of Fixed Effects:
##             (Intr) bf_sl_ itt_c_
## bfi_slf_pmc  0.452              
## itt_cmp_gmc -0.015 -0.005       
## bf_slf_p:__ -0.005 -0.029  0.443
tab_model(bfi_nostereo_comp_pro)
  bfi_targ_pmc
Predictors Estimates CI p
(Intercept) 0.00 -0.04 – 0.05 0.955
bfi self pmc 0.01 -0.02 – 0.03 0.734
itt comp gmc -0.29 -0.33 – -0.25 <0.001
bfi self pmc * itt comp
gmc
-0.14 -0.16 – -0.11 <0.001
Random Effects
σ2 0.95
τ00 sub_id 0.15
τ11 sub_id.bfi_self_pmc 0.06
ρ01 sub_id 0.65
ICC 0.21
N sub_id 405
Observations 7695
Marginal R2 / Conditional R2 0.104 / 0.296

Did not change

Simple Slopes

bfi_nostereo_comp_pro <- emtrends(bfi_nostereo_comp_pro , ~ itt_comp_gmc,
                              var ="bfi_self_pmc",
                              at = c(threat_levels))


bfi_nostereo_comp_pro
##  itt_comp_gmc bfi_self_pmc.trend     SE  df asymp.LCL asymp.UCL
##         -1.07            0.15197 0.0214 Inf    0.1101    0.1939
##          0.00            0.00507 0.0149 Inf   -0.0242    0.0343
##          1.07           -0.14183 0.0208 Inf   -0.1825   -0.1011
## 
## Degrees-of-freedom method: asymptotic 
## Confidence level used: 0.95

Did not change

Target variable

bfi_nostereo_targ_pro <- lmer(bfi_targ_pmc ~ bfi_self_pmc*target_condition +
                     (bfi_self_pmc | sub_id), data = data_bfi_prolific)
summary(bfi_nostereo_targ_pro)
## Linear mixed model fit by REML ['lmerMod']
## Formula: bfi_targ_pmc ~ bfi_self_pmc * target_condition + (bfi_self_pmc |  
##     sub_id)
##    Data: data_bfi_prolific
## 
## REML criterion at convergence: 22291.5
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.7255 -0.6079 -0.0084  0.6544  3.5841 
## 
## Random effects:
##  Groups   Name         Variance Std.Dev. Corr
##  sub_id   (Intercept)  0.13379  0.3658       
##           bfi_self_pmc 0.05639  0.2375   0.65
##  Residual              0.94552  0.9724       
## Number of obs: 7695, groups:  sub_id, 405
## 
## Fixed effects:
##                                   Estimate Std. Error t value
## (Intercept)                        0.39128    0.03619  10.812
## bfi_self_pmc                       0.19120    0.02506   7.630
## target_conditionLOSS              -0.84609    0.05291 -15.991
## target_conditionWARM              -0.39259    0.05155  -7.616
## bfi_self_pmc:target_conditionLOSS -0.37108    0.03655 -10.152
## bfi_self_pmc:target_conditionWARM -0.21686    0.03560  -6.092
## 
## Correlation of Fixed Effects:
##             (Intr) bf_sl_ t_LOSS t_WARM b__:_L
## bfi_slf_pmc  0.432                            
## trgt_cnLOSS -0.684 -0.296                     
## trgt_cnWARM -0.702 -0.304  0.480              
## bf_s_:_LOSS -0.296 -0.685  0.433  0.208       
## bf_s_:_WARM -0.304 -0.704  0.208  0.441  0.482
tab_model(bfi_nostereo_targ_pro)
  bfi_targ_pmc
Predictors Estimates CI p
(Intercept) 0.39 0.32 – 0.46 <0.001
bfi self pmc 0.19 0.14 – 0.24 <0.001
target condition [LOSS] -0.85 -0.95 – -0.74 <0.001
target condition [WARM] -0.39 -0.49 – -0.29 <0.001
bfi self pmc * target
condition [LOSS]
-0.37 -0.44 – -0.30 <0.001
bfi self pmc * target
condition [WARM]
-0.22 -0.29 – -0.15 <0.001
Random Effects
σ2 0.95
τ00 sub_id 0.13
τ11 sub_id.bfi_self_pmc 0.06
ρ01 sub_id 0.65
ICC 0.20
N sub_id 405
Observations 7695
Marginal R2 / Conditional R2 0.120 / 0.295

Did not change

Simple Slopes

bfi_nostereo_targ_pro <- emtrends(bfi_nostereo_targ_pro, ~ target_condition,
                              var ="bfi_self_pmc",
                              at = targ_levels)


bfi_nostereo_targ_pro 
##  target_condition bfi_self_pmc.trend     SE  df asymp.LCL asymp.UCL
##  CONTROL                      0.1912 0.0251 Inf    0.1421    0.2403
##  LOSS                        -0.1799 0.0266 Inf   -0.2320   -0.1277
##  WARM                        -0.0257 0.0253 Inf   -0.0752    0.0239
## 
## Degrees-of-freedom method: asymptotic 
## Confidence level used: 0.95

Did not change

Stereotyping

Only composite

bfi_stereo_comp_pro <- lmer(bfi_targ_pmc ~ bfi_self_pmc*itt_comp_gmc*bfi_stereo_pmc +
                     (bfi_self_pmc + bfi_stereo_pmc | sub_id), data = data_bfi_prolific)
summary(bfi_stereo_comp_pro)
## Linear mixed model fit by REML ['lmerMod']
## Formula: bfi_targ_pmc ~ bfi_self_pmc * itt_comp_gmc * bfi_stereo_pmc +  
##     (bfi_self_pmc + bfi_stereo_pmc | sub_id)
##    Data: data_bfi_prolific
## 
## REML criterion at convergence: 20454.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.2655 -0.5014 -0.0403  0.6150  4.2109 
## 
## Random effects:
##  Groups   Name           Variance Std.Dev. Corr       
##  sub_id   (Intercept)    0.12934  0.3596              
##           bfi_self_pmc   0.03863  0.1965    0.47      
##           bfi_stereo_pmc 0.06842  0.2616   -0.69 -0.08
##  Residual                0.70147  0.8375              
## Number of obs: 7695, groups:  sub_id, 405
## 
## Fixed effects:
##                                           Estimate Std. Error t value
## (Intercept)                               0.011888   0.020777   0.572
## bfi_self_pmc                              0.070038   0.012904   5.428
## itt_comp_gmc                             -0.251778   0.019494 -12.916
## bfi_stereo_pmc                            0.228417   0.016169  14.127
## bfi_self_pmc:itt_comp_gmc                -0.076118   0.012059  -6.312
## bfi_self_pmc:bfi_stereo_pmc              -0.021265   0.006406  -3.320
## itt_comp_gmc:bfi_stereo_pmc               0.189356   0.015116  12.527
## bfi_self_pmc:itt_comp_gmc:bfi_stereo_pmc -0.002961   0.005821  -0.509
## 
## Correlation of Fixed Effects:
##                (Intr) bf_sl_ itt_c_ bf_st_ bf_slf_pmc:t__ bf_slf_pmc:b__ i__:__
## bfi_slf_pmc     0.300                                                          
## itt_cmp_gmc    -0.016  0.006                                                   
## bfi_str_pmc    -0.481  0.049  0.033                                            
## bf_slf_pmc:t__  0.006 -0.042  0.292 -0.006                                     
## bf_slf_pmc:b__  0.142 -0.084 -0.013  0.073  0.050                              
## itt_cmp_:__     0.033 -0.007 -0.480 -0.077  0.052         -0.001               
## bf_s_:__:__    -0.013  0.050  0.148 -0.004 -0.080         -0.196          0.057
tab_model(bfi_stereo_comp_pro)
  bfi_targ_pmc
Predictors Estimates CI p
(Intercept) 0.01 -0.03 – 0.05 0.567
bfi self pmc 0.07 0.04 – 0.10 <0.001
itt comp gmc -0.25 -0.29 – -0.21 <0.001
bfi stereo pmc 0.23 0.20 – 0.26 <0.001
bfi self pmc * itt comp
gmc
-0.08 -0.10 – -0.05 <0.001
bfi self pmc * bfi stereo
pmc
-0.02 -0.03 – -0.01 0.001
itt comp gmc * bfi stereo
pmc
0.19 0.16 – 0.22 <0.001
(bfi self pmc * itt comp
gmc) * bfi stereo pmc
-0.00 -0.01 – 0.01 0.611
Random Effects
σ2 0.70
τ00 sub_id 0.13
τ11 sub_id.bfi_self_pmc 0.04
τ11 sub_id.bfi_stereo_pmc 0.07
ρ01 0.47
-0.69
ICC 0.31
N sub_id 405
Observations 7695
Marginal R2 / Conditional R2 0.221 / 0.463

Did not change

Simple Slopes

bfi_stereo_comp_pro <- emtrends(bfi_stereo_comp_pro, ~ itt_comp_gmc,
                              var ="bfi_self_pmc",
                              at = threat_levels)


bfi_stereo_comp_pro
##  itt_comp_gmc bfi_self_pmc.trend     SE  df asymp.LCL asymp.UCL
##         -1.07             0.1520 0.0187 Inf    0.1154    0.1886
##          0.00             0.0707 0.0129 Inf    0.0454    0.0960
##          1.07            -0.0107 0.0179 Inf   -0.0457    0.0244
## 
## Degrees-of-freedom method: asymptotic 
## Confidence level used: 0.95

Did not change

arget Condition

bfi_stereo_targ_pro <- lmer(bfi_targ_pmc ~ bfi_self_pmc*target_condition*bfi_stereo_pmc +
                     (bfi_self_pmc | sub_id), data = data_bfi_prolific)
summary(bfi_stereo_targ_pro)
## Linear mixed model fit by REML ['lmerMod']
## Formula: bfi_targ_pmc ~ bfi_self_pmc * target_condition * bfi_stereo_pmc +  
##     (bfi_self_pmc | sub_id)
##    Data: data_bfi_prolific
## 
## REML criterion at convergence: 20807.7
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.1209 -0.5710 -0.0097  0.6350  3.8947 
## 
## Random effects:
##  Groups   Name         Variance Std.Dev. Corr
##  sub_id   (Intercept)  0.11227  0.3351       
##           bfi_self_pmc 0.04738  0.2177   0.62
##  Residual              0.77415  0.8799       
## Number of obs: 7695, groups:  sub_id, 405
## 
## Fixed effects:
##                                                   Estimate Std. Error t value
## (Intercept)                                       0.379373   0.033444  11.344
## bfi_self_pmc                                      0.182813   0.023315   7.841
## target_conditionLOSS                             -0.838190   0.048786 -17.181
## target_conditionWARM                             -0.369054   0.047670  -7.742
## bfi_stereo_pmc                                   -0.053031   0.015510  -3.419
## bfi_self_pmc:target_conditionLOSS                -0.222962   0.033926  -6.572
## bfi_self_pmc:target_conditionWARM                -0.121928   0.033104  -3.683
## bfi_self_pmc:bfi_stereo_pmc                      -0.027506   0.011273  -2.440
## target_conditionLOSS:bfi_stereo_pmc               0.602651   0.022011  27.380
## target_conditionWARM:bfi_stereo_pmc               0.344824   0.021803  15.816
## bfi_self_pmc:target_conditionLOSS:bfi_stereo_pmc -0.007515   0.015943  -0.471
## bfi_self_pmc:target_conditionWARM:bfi_stereo_pmc  0.013262   0.015496   0.856
## 
## Correlation of Fixed Effects:
##             (Intr) bf_sl_ tr_LOSS tr_WARM bf_st_ bf__:_LOSS bf__:_WARM b__:__
## bfi_slf_pmc  0.395                                                           
## trgt_cnLOSS -0.686 -0.271                                                    
## trgt_cnWARM -0.702 -0.277  0.481                                             
## bfi_str_pmc  0.011  0.167 -0.008  -0.008                                     
## bf_s_:_LOSS -0.271 -0.687  0.400   0.190  -0.115                             
## bf_s_:_WARM -0.278 -0.704  0.191   0.409  -0.118  0.484                      
## bf_slf_p:__  0.154 -0.076 -0.106  -0.108   0.131  0.052      0.053           
## trg_LOSS:__ -0.008 -0.118  0.016   0.006  -0.705  0.156      0.083     -0.092
## trg_WARM:__ -0.008 -0.119  0.006   0.035  -0.711  0.082      0.171     -0.093
## b__:_LOSS:_ -0.109  0.053  0.139   0.076  -0.093 -0.073     -0.038     -0.707
## b__:_WARM:_ -0.112  0.055  0.077   0.157  -0.095 -0.038     -0.055     -0.727
##             t_LOSS: t_WARM: b__:_LOSS:
## bfi_slf_pmc                           
## trgt_cnLOSS                           
## trgt_cnWARM                           
## bfi_str_pmc                           
## bf_s_:_LOSS                           
## bf_s_:_WARM                           
## bf_slf_p:__                           
## trg_LOSS:__                           
## trg_WARM:__  0.501                    
## b__:_LOSS:_  0.115   0.066            
## b__:_WARM:_  0.067   0.158   0.514
tab_model(bfi_stereo_targ_pro)
  bfi_targ_pmc
Predictors Estimates CI p
(Intercept) 0.38 0.31 – 0.44 <0.001
bfi self pmc 0.18 0.14 – 0.23 <0.001
target condition [LOSS] -0.84 -0.93 – -0.74 <0.001
target condition [WARM] -0.37 -0.46 – -0.28 <0.001
bfi stereo pmc -0.05 -0.08 – -0.02 0.001
bfi self pmc * target
condition [LOSS]
-0.22 -0.29 – -0.16 <0.001
bfi self pmc * target
condition [WARM]
-0.12 -0.19 – -0.06 <0.001
bfi self pmc * bfi stereo
pmc
-0.03 -0.05 – -0.01 0.015
target condition [LOSS] *
bfi stereo pmc
0.60 0.56 – 0.65 <0.001
target condition [WARM] *
bfi stereo pmc
0.34 0.30 – 0.39 <0.001
(bfi self pmc * target
condition [LOSS]) * bfi
stereo pmc
-0.01 -0.04 – 0.02 0.637
(bfi self pmc * target
condition [WARM]) * bfi
stereo pmc
0.01 -0.02 – 0.04 0.392
Random Effects
σ2 0.77
τ00 sub_id 0.11
τ11 sub_id.bfi_self_pmc 0.05
ρ01 sub_id 0.62
ICC 0.20
N sub_id 405
Observations 7695
Marginal R2 / Conditional R2 0.268 / 0.416

Model fails to converge with random effect for stereo; Dropping random effect for stereo, but results appear the same

Simple Slopes

bfi_stereo_targ_pro <- emtrends(bfi_stereo_targ_pro, ~ target_condition,
                              var ="bfi_self_pmc",
                              at = targ_levels)


bfi_stereo_targ_pro 
##  target_condition bfi_self_pmc.trend     SE  df asymp.LCL asymp.UCL
##  CONTROL                      0.1836 0.0233 Inf    0.1379   0.22940
##  LOSS                        -0.0391 0.0247 Inf   -0.0874   0.00927
##  WARM                         0.0613 0.0235 Inf    0.0152   0.10741
## 
## Degrees-of-freedom method: asymptotic 
## Confidence level used: 0.95

Did not change

Multicolinearity of predictors

cor_bfi <- clean_data_bfi %>% 
  select(bfi_self_pmc, bfi_stereo_pmc, bfi_targ_pmc, itt_comp_gmc) %>% 
  unique() %>% 
  rename("BFI: Self" = bfi_self_pmc,
         "BFI: Stereo" = bfi_stereo_pmc,
         "BFI: Target" = bfi_targ_pmc,
         "Threat Composite" = itt_comp_gmc)

correlations_preds <- cor(cor_bfi)

corrplot(correlations_preds, 
         is.corr = TRUE, 
         #method = "number", 
         method = 'color',
         tl.cex = .85,
         tl.col = 'black',
         addgrid.col = 'white',
         addCoef.col = 'grey50')

LS0tCnRpdGxlOiAiUmVzaWR1YWwgQ291bnRlci1Qcm9qZWN0aW9uIgpvdXRwdXQ6IAogICAgaHRtbF9kb2N1bWVudDoKICAgICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgICB0b2M6IFRSVUUKICAgICAgdG9jX2Zsb2F0OgogICAgICAgIGNvbGxhcHNlZDogRkFMU0UKICAgICAgdG9jX2RlcHRoOiAxCiAgICAgIGNvZGVfZm9sZGluZzogaGlkZQplZGl0b3Jfb3B0aW9uczogCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUKLS0tCgpgYGB7ciBkYXRhIHByZXAsIGVjaG8gPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsIGVycm9yID0gRkFMU0V9CiMgTG9hZGluZyBwYWNrYWdlcwpsaWJyYXJ5KHBzeWNoKQpsaWJyYXJ5KGxtZTQpCmxpYnJhcnkobmxtZSkKbGlicmFyeShzalBsb3QpCmxpYnJhcnkoZWZmZWN0cykKbGlicmFyeShtYWdyaXR0cikgIyBwYXJ0IG9mIHRoZSB0aWR5dmVyc2UgYnV0IG11c3QgYmUgcmVhZCBpbiBvbiBpdHMgb3duCmxpYnJhcnkocGFyYW1ldGVycykKbGlicmFyeShkcGx5cikKbGlicmFyeSh0aWR5cikKbGlicmFyeShyaW8pCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShlbW1lYW5zKQpsaWJyYXJ5KGNvcnJwbG90KQoKIyBGdW5jdGlvbnMgdG8gY2xlYW4gZG9jdW1lbnQsIGdldCBkYXRhIGZyb20gd2lkZSB0byBsb25nIGZvcm1hdApzb3VyY2UoImZ1bmN0aW9ucy9DbGVhbmluZy5SIikKCiMgU2V0dGluZyBnbG9iYWwgY2h1bmsgb3B0aW9ucwprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nID0gRkFMU0UpCgpvcHRpb25zKHNjaXBlbiA9IDk5OSkKCiMgSW1wb3J0aW5nIGRhdGEKd2lkZV9kYXRhIDwtIGltcG9ydCgiZGF0YS9kaXNzX21haW5fY29tYmluZWRfZGF0YV9iYXNpY19jbGVhbi5jc3YiKQoKIyBDbGVhbmluZyBkYXRhIHVzaW5nIGZ1bmN0aW9ucwpsb25nX2RhdGFfYmZpIDwtIGdldF93cmFuZ2xlZF9iZmkod2lkZV9kYXRhKQpsb25nX2RhdGFfZWxpIDwtIGdldF93cmFuZ2xlZF9lbGkod2lkZV9kYXRhKQoKY2xlYW5fdmFyc19iZmkgPC0gZ2V0X3ZhcnNfY2xlYW5lZChsb25nX2RhdGFfYmZpKQpjbGVhbl92YXJzX2VsaSA8LSBnZXRfdmFyc19jbGVhbmVkKGxvbmdfZGF0YV9lbGkpCgpjbGVhbl9kYXRhX2JmaSA8LSByZW1vdmVfcGFydGljaXBhbnRzKGNsZWFuX3ZhcnNfYmZpKQpjbGVhbl9kYXRhX2VsaSA8LSByZW1vdmVfcGFydGljaXBhbnRzKGNsZWFuX3ZhcnNfZWxpKQoKY2xlYW5fZGF0YV9iZmkgJTw+JSAgICAKICBtdXRhdGUoaXR0X2NvbXAgPSByb3dNZWFucyhzZWxlY3QoLiwgYygicmVhbGlzdGljX3EiLCAic3ltYm9saWNfcSIpKSksCiAgICAgICAgIGl0dF9jb21wX2dtYyA9IHNjYWxlKGl0dF9jb21wLCBjZW50ZXIgPSBULCBzY2FsZSA9IEYpKQoKY2xlYW5fZGF0YV9lbGkgJTw+JSAgICAKICBtdXRhdGUoaXR0X2NvbXAgPSByb3dNZWFucyhzZWxlY3QoLiwgYygicmVhbGlzdGljX3EiLCAic3ltYm9saWNfcSIpKSksCiAgICAgICAgIGl0dF9jb21wX2dtYyA9IHNjYWxlKGl0dF9jb21wLCBjZW50ZXIgPSBULCBzY2FsZSA9IEYpKQpgYGAKCiMgTW9kZWxzIGZvciBjb21wYXJpc29uCgoKYGBge3J9CmJmaV9ub3N0ZXJlb19jb21wIDwtIGxtZXIoYmZpX3RhcmdfcG1jIH4gYmZpX3NlbGZfcG1jKml0dF9jb21wX2dtYyArCiAgICAgICAgICAgICAgICAgICAgIChiZmlfc2VsZl9wbWMgfCBzdWJfaWQpLCBkYXRhID0gY2xlYW5fZGF0YV9iZmkpCgpiZmlfbm9zdGVyZW9fdGFyZyA8LSBsbWVyKGJmaV90YXJnX3BtYyB+IGJmaV9zZWxmX3BtYyp0YXJnZXRfY29uZGl0aW9uICsKICAgICAgICAgICAgICAgICAgICAgKGJmaV9zZWxmX3BtYyB8IHN1Yl9pZCksIGRhdGEgPSBjbGVhbl9kYXRhX2JmaSkKCmNvbXBfZWxpX3JhbmRzbG9wZXMgPC0gbG1lcihlbGlfdGFyZ19wbWMgfiBlbGlfc2VsZl9wbWMqaXR0X2NvbXBfZ21jICsgIyBpdHQgZG9lcyBub3Qgd29yayBhcyBhIFJFOyBtb2RlbCBkb2VzIG5vdCBjb252ZXJnZQogICAgICAgICAgICAgICAgICAgICAoMCArIGVsaV9zZWxmX3BtYyB8IHN1Yl9pZCksIAogICAgICAgICAgICAgICAgICAgZGF0YSA9IGNsZWFuX2RhdGFfZWxpKQoKY29uZF9lbGlfcmFuZHNsb3BlcyA8LSBsbWVyKGVsaV90YXJnX3BtYyB+IGVsaV9zZWxmX3BtYyp0YXJnZXRfY29uZGl0aW9uICsgIyBpdHQgZG9lcyBub3Qgd29yayBhcyBhIFJFOyBtb2RlbCBkb2VzIG5vdCBjb252ZXJnZQogICAgICAgICAgICAgICAgICAgICAoMCArIGVsaV9zZWxmX3BtYyB8IHN1Yl9pZCksIAogICAgICAgICAgICAgICAgICAgZGF0YSA9IGNsZWFuX2RhdGFfZWxpKQpgYGAKCiMgUmVzaWR1YWwgQ291bnRlci1wcm9qZWN0aW9uIC0gQkZJIHsudGFic2V0IC50YWJzZXQtZmFkZSAudGFic2V0LXBpbGxzfQoKIyMgT25seSBjb21wb3NpdGUKCiMjIyBSZXN1bHRzCgpgYGB7cn0KYmZpX3N0ZXJlb19jb21wIDwtIGxtZXIoYmZpX3RhcmdfcG1jIH4gYmZpX3NlbGZfcG1jKml0dF9jb21wX2dtYypiZmlfc3RlcmVvX3BtYyArCiAgICAgICAgICAgICAgICAgICAgIChiZmlfc2VsZl9wbWMgKyBiZmlfc3RlcmVvX3BtYyB8IHN1Yl9pZCksIGRhdGEgPSBjbGVhbl9kYXRhX2JmaSkKc3VtbWFyeShiZmlfc3RlcmVvX2NvbXApCnRhYl9tb2RlbChiZmlfc3RlcmVvX2NvbXApCmBgYAoKIyMjIENvbXBhcmlzb24gd2l0aCBtb2RlbCB3aXRob3V0IHN0ZXJlb3R5cGluZwoKYGBge3J9CmFub3ZhKGJmaV9zdGVyZW9fY29tcCwgYmZpX25vc3RlcmVvX2NvbXApCmBgYAoKIyMjIFNpbXBsZSBTbG9wZXMKCmBgYHtyfQp0aHJlYXRfbGV2ZWxzID0gbGlzdChpdHRfY29tcF9nbWMgPSBjKC0xLjA3LCAwLjAsIDEuMDcpKQpzaW1wc2xvcGVzX2JmaV9zdGVyZW8yIDwtIGVtdHJlbmRzKGJmaV9zdGVyZW9fY29tcCwgfiBpdHRfY29tcF9nbWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciA9ImJmaV9zZWxmX3BtYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0ID0gYyh0aHJlYXRfbGV2ZWxzKSkKCgpzaW1wc2xvcGVzX2JmaV9zdGVyZW8yCnRlc3Qoc2ltcHNsb3Blc19iZmlfc3RlcmVvMikKcGFpcnMoc2ltcHNsb3Blc19iZmlfc3RlcmVvMikKYGBgCgojIyMgVmlzdWFsaXphdGlvbgoKYGBge3J9CmJmaV9zdGVyZW9fY29tcF9kZiA8LSBlZmZlY3QoImJmaV9zZWxmX3BtYzppdHRfY29tcF9nbWMiLAogICAgICAgICAgICAgICAgICAgICAgICAgeGxldmVscyA9IGxpc3QoaXR0X2NvbXBfZ21jID0gYygtMS4wNywgMC4wLCAxLjA3KSksCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2QgPSBiZmlfc3RlcmVvX2NvbXApCgpiZmlfc3RlcmVvX2NvbXBfZGYgPC0gYXMuZGF0YS5mcmFtZShiZmlfc3RlcmVvX2NvbXBfZGYpCmJmaV9zdGVyZW9fY29tcF9kZiRpdHRfY29tcF9nbWMgPC0gYXMuZmFjdG9yKGJmaV9zdGVyZW9fY29tcF9kZiRpdHRfY29tcF9nbWMpCgpnZ3Bsb3QoYmZpX3N0ZXJlb19jb21wX2RmLCBhZXMoYmZpX3NlbGZfcG1jLCBmaXQsIGdyb3VwID0gaXR0X2NvbXBfZ21jKSkgKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIAogICAgICAgICAgICAgICAgc2l6ZSA9IC43LCAKICAgICAgICAgICAgICAgIHNlID0gRkFMU0UsCiAgICAgICAgICAgICAgICBjb2xvdXIgPSAiYmxhY2siLCAKICAgICAgICAgICAgICAgIGFlcyhsaW5ldHlwZSA9IGl0dF9jb21wX2dtYykpICsKICAgIHRoZW1lX21pbmltYWwoYmFzZV9zaXplID0gMTMpICsKICAgIHRoZW1lKGxlZ2VuZC5rZXkuc2l6ZSA9IHVuaXQoMSwgImNtIikpICsKICBzY2FsZV9saW5ldHlwZV9tYW51YWwoIlRhcmdldC1sZXZlbCB0aHJlYXQiLAogICAgICAgICAgICAgICAgICAgICAgICBicmVha3MgPSBjKCItMS4wNyIsICIwIiwgIjEuMDciKSwgCiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygiTG93IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBdmVyYWdlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIaWdoIiksCiAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gYygic29saWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhc2hlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG90dGVkIikpICsKICAgIGxhYnMoeCA9ICJCRkkgcmVzcG9uc2VzIGZvciBzZWxmIiwKICAgICAgIHkgPSAiQkZJIHJlc3BvbnNlcyBmb3IgdGFyZ2V0IikKYGBgCgojIyMgQXNzdW1wdGlvbnMKCmBgYHtyfQojIGNoZWNraW5nIG5vcm1hbGl0eSBvZiBjb25kaXRpb25hbCByZXNpZHVhbHMKcXFub3JtKHJlc2lkdWFscyhiZmlfc3RlcmVvX2NvbXApLCBtYWluPSJRLVEgcGxvdCBmb3IgY29uZGl0aW9uYWwgcmVzaWR1YWxzIikKCiMgY2hlY2tpbmcgdGhlIG5vcm1hbGl0eSBvZiB0aGUgcmFuZG9tIGVmZmVjdHMgKGhlcmUgcmFuZG9tIGludGVyY2VwdCk6CnFxbm9ybShyYW5lZihiZmlfc3RlcmVvX2NvbXApJHN1Yl9pZCRiZmlfc2VsZl9wbWMsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHNlbGYgcmFuZG9tIGVmZmVjdCIpCgpxcW5vcm0ocmFuZWYoYmZpX3N0ZXJlb19jb21wKSRzdWJfaWQkYmZpX3N0ZXJlb19wbWMsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHN0ZXJlb3R5cGluZyByYW5kb20gZWZmZWN0IikKCiMgQ2hlY2tpbmcgcmVzaWR1YWxzIGZvciBpbnRlcmNlcHQKcXFub3JtKHJhbmVmKGJmaV9zdGVyZW9fY29tcCkkc3ViX2lkJGAoSW50ZXJjZXB0KWAsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHJhbmRvbSBpbnRlcmNlcHQiKQoKcGxvdF9tb2RlbChiZmlfc3RlcmVvX2NvbXAsIHR5cGU9J2RpYWcnKQpgYGAKCkFsc28gc2VlbXMgdG8gaGF2ZSBzbGlnaHQgdGFpbHMsIGJhc2ljYWxseSB3aGVuIHN0ZXJlb3R5cGluZyBpcyBhZGRlZCB0byB0aGUgbW9kZWwKCiMjIE9ubHkgdGFyZ2V0IHZhcmlhYmxlCgojIyMgUmVzdWx0cwoKYGBge3J9CmJmaV9zdGVyZW9fdGFyZyA8LSBsbWVyKGJmaV90YXJnX3BtYyB+IGJmaV9zZWxmX3BtYyp0YXJnZXRfY29uZGl0aW9uKmJmaV9zdGVyZW9fcG1jICsKICAgICAgICAgICAgICAgICAgICAgKGJmaV9zZWxmX3BtYyArIGJmaV9zdGVyZW9fcG1jIHwgc3ViX2lkKSwgZGF0YSA9IGNsZWFuX2RhdGFfYmZpKQpzdW1tYXJ5KGJmaV9zdGVyZW9fdGFyZykKdGFiX21vZGVsKGJmaV9zdGVyZW9fdGFyZykKYGBgCgojIyMgQ29tcGFyaXNvbiB3aXRoIG1vZGVsIHdpdGhvdXQgc3RlcmVvdHlwaW5nCgpgYGB7cn0KYW5vdmEoYmZpX3N0ZXJlb190YXJnLCBiZmlfbm9zdGVyZW9fdGFyZykKYGBgCgojIyMgU2ltcGxlIHNsb3BlcwoKYGBge3J9CnRhcmdfbGV2ZWxzIDwtbGlzdCh0YXJnZXRfY29uZGl0aW9uID0gYygiQ09OVFJPTCIsICJMT1NTIiwgIldBUk0iKSkKc2ltcHNsb3Blc19iZmlfc3RlcmVvX3RhcmcgPC0gZW10cmVuZHMoYmZpX3N0ZXJlb190YXJnLCB+IHRhcmdldF9jb25kaXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciA9ImJmaV9zZWxmX3BtYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0ID0gdGFyZ19sZXZlbHMpCgoKc2ltcHNsb3Blc19iZmlfc3RlcmVvX3RhcmcgCnRlc3Qoc2ltcHNsb3Blc19iZmlfc3RlcmVvX3RhcmcpCnBhaXJzKHNpbXBzbG9wZXNfYmZpX3N0ZXJlb190YXJnKQpgYGAKCiMjIyBWaXN1YWxpemF0aW9uCgpgYGB7cn0KYmZpX3N0ZXJlb190YXJnX2RmIDwtIGVmZmVjdCgiYmZpX3NlbGZfcG1jOnRhcmdldF9jb25kaXRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgeGxldmVscyA9IGxpc3QodGFyZ2V0X2NvbmRpdGlvbiA9IGMoIkNPTlRST0wiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldBUk0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxPU1MiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2QgPSBiZmlfc3RlcmVvX3RhcmcpCgpiZmlfc3RlcmVvX3RhcmdfZGYgPC0gYXMuZGF0YS5mcmFtZShiZmlfc3RlcmVvX3RhcmdfZGYpCmJmaV9zdGVyZW9fdGFyZ19kZiR0YXJnZXRfY29uZGl0aW9uIDwtIGFzLmZhY3RvcihiZmlfc3RlcmVvX3RhcmdfZGYkdGFyZ2V0X2NvbmRpdGlvbikKCmJmaV9zdGVyZW9fdGFyZ19kZiAlPD4lIAogIG11dGF0ZSh0YXJnZXRfY29uZGl0aW9uID0gZm9yY2F0czo6ZmN0X3JlbGV2ZWwodGFyZ2V0X2NvbmRpdGlvbiwgYygiQ09OVFJPTCIsICJXQVJNIiwgIkxPU1MiKSkpCgpnZ3Bsb3QoYmZpX3N0ZXJlb190YXJnX2RmLCBhZXMoYmZpX3NlbGZfcG1jLCBmaXQsIGdyb3VwID0gdGFyZ2V0X2NvbmRpdGlvbikpICsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCAKICAgICAgICAgICAgICAgIHNpemUgPSAuNywgCiAgICAgICAgICAgICAgICBzZSA9IEZBTFNFLAogICAgICAgICAgICAgICAgY29sb3VyID0gImJsYWNrIiwgCiAgICAgICAgICAgICAgICBhZXMobGluZXR5cGUgPSB0YXJnZXRfY29uZGl0aW9uKSkgKwogICAgdGhlbWVfbWluaW1hbChiYXNlX3NpemUgPSAxMykgKwogICAgdGhlbWUobGVnZW5kLmtleS5zaXplID0gdW5pdCgxLCAiY20iKSkgKwogIHNjYWxlX2xpbmV0eXBlX21hbnVhbCgiVGFyZ2V0IHZhcmlhYmxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtzID0gYygiQ09OVFJPTCIsICJXQVJNIiwgIkxPU1MiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygiTGVhc3QgdGhyZWF0ZW5pbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1lZGl1bSB0aHJlYXRlbmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9zdCB0aHJlYXRlbmluZyIpLAogICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IGMoInNvbGlkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXNoZWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvdHRlZCIpKSsKICAgIGxhYnMoeCA9ICJCRkkgcmVzcG9uc2VzIGZvciBzZWxmIiwKICAgICAgIHkgPSAiQkZJIHJlc3BvbnNlcyBmb3IgdGFyZ2V0IikKYGBgCgojIyMgQXNzdW1wdGlvbnMKCmBgYHtyfQojIGNoZWNraW5nIG5vcm1hbGl0eSBvZiBjb25kaXRpb25hbCByZXNpZHVhbHMKcXFub3JtKHJlc2lkdWFscyhiZmlfc3RlcmVvX3RhcmcpLCBtYWluPSJRLVEgcGxvdCBmb3IgY29uZGl0aW9uYWwgcmVzaWR1YWxzIikKCiMgY2hlY2tpbmcgdGhlIG5vcm1hbGl0eSBvZiB0aGUgcmFuZG9tIGVmZmVjdHMgCnFxbm9ybShyYW5lZihiZmlfc3RlcmVvX3RhcmcpJHN1Yl9pZCRiZmlfc2VsZl9wbWMsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHNlbGYgcmFuZG9tIGVmZmVjdCIpCgpxcW5vcm0ocmFuZWYoYmZpX3N0ZXJlb190YXJnKSRzdWJfaWQkYmZpX3N0ZXJlb19wbWMsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHN0ZXJlb3R5cGluZyByYW5kb20gZWZmZWN0IikKCiMgQ2hlY2tpbmcgcmVzaWR1YWxzIGZvciBpbnRlcmNlcHQKcXFub3JtKHJhbmVmKGJmaV9zdGVyZW9fdGFyZykkc3ViX2lkJGAoSW50ZXJjZXB0KWAsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHJhbmRvbSBpbnRlcmNlcHQiKQoKcGxvdF9tb2RlbChiZmlfc3RlcmVvX3RhcmcsIHR5cGU9J2RpYWcnKQpgYGAKCkRlZmluaXRlbHkgYSB0YWlsLCBidXQgb25seSBhIGZldyBwb2ludHMsIHNvIG1vc3QgbGlrZWx5IHJvYnVzdDsgc3RlcmVvIGlzIHRoZSB3b3JzdCwgbWF5IG5lZWQgdG8gdHJhbnNmb3JtIGl0CgoKIyBSZXNpZHVhbCBDb3VudGVyLXByb2plY3Rpb24gLSBFTEkgey50YWJzZXQgLnRhYnNldC1mYWRlIC50YWJzZXQtcGlsbHN9CgojIyBUaHJlYXQgY29tcG9zaXRlIG9ubHkKCmBgYHtyfQpjb21wX2VsaV9zdGVyZW8gPC0gbG1lcihlbGlfdGFyZ19wbWMgfiBlbGlfc2VsZl9wbWMqaXR0X2NvbXBfZ21jKmVsaV9zdGVyZW9fcG1jICsgIyBpdHQgZG9lcyBub3Qgd29yayBhcyBhIFJFOyBtb2RlbCBkb2VzIG5vdCBjb252ZXJnZQogICAgICAgICAgICAgICAgICAgICAoMCArIGVsaV9zZWxmX3BtYyArIGVsaV9zdGVyZW9fcG1jIHwgc3ViX2lkKSwgCiAgICAgICAgICAgICAgICAgICBkYXRhID0gY2xlYW5fZGF0YV9lbGkpICMgU2FtZSBhcyBhYm92ZSwgd29ya3Mgd2l0aCBjbGVhbl9kYXRhIGJ1dCBub3QgdGhlIHNtYWxsZXIgZGYgc3BlY2lmaWMgdG8gdGhpcyBhbmFseXNpcwoKCnN1bW1hcnkoY29tcF9lbGlfc3RlcmVvKQp0YWJfbW9kZWwoY29tcF9lbGlfc3RlcmVvLAogICAgICAgICAgZGlnaXRzID0gMykKYGBgCgojIyMgQ29tcGFyaW5nIHRvIG1vZGVsIHdpdGhvdXQgc3RlcmVvdHlwaW5nCgpgYGB7cn0KYW5vdmEoY29tcF9lbGlfcmFuZHNsb3BlcywgY29tcF9lbGlfc3RlcmVvKQpgYGAKCiMjIyBTaW1wbGUgc2xvcGVzCgpgYGB7cn0KY29tcF9zdGVyZW9fc2ltcHNsb3Blc19lbGkgPC0gZW10cmVuZHMoY29tcF9lbGlfc3RlcmVvLCB+IGl0dF9jb21wX2dtYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyID0iZWxpX3NlbGZfcG1jIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPSB0aHJlYXRfbGV2ZWxzKQoKY29tcF9zdGVyZW9fc2ltcHNsb3Blc19lbGkKdGVzdChjb21wX3N0ZXJlb19zaW1wc2xvcGVzX2VsaSkKcGFpcnMoY29tcF9zdGVyZW9fc2ltcHNsb3Blc19lbGkpCmBgYAoKIyMjIFZpc3VhbGl6YXRpb24KCmBgYHtyfQpjb21wX3N0ZXJlb19lbGlfbWFpbmVmZmVjdCA8LSBlZmZlY3QoImVsaV9zZWxmX3BtYzppdHRfY29tcF9nbWMiLAogICAgICAgICAgICAgICAgICAgICAgICAgeGxldmVscyA9IGxpc3QoaXR0X2NvbXBfZ21jID0gYygtMS4wNywgMCwgMS4wNykpLAogICAgICAgICAgICAgICAgICAgICAgICAgbW9kID0gY29tcF9lbGlfc3RlcmVvKQoKY29tcF9zdGVyZW9fZWxpX21haW5lZmZlY3QgPC0gYXMuZGF0YS5mcmFtZShjb21wX3N0ZXJlb19lbGlfbWFpbmVmZmVjdCkKY29tcF9zdGVyZW9fZWxpX21haW5lZmZlY3QkaXR0X2NvbXBfZ21jIDwtIGFzLmZhY3Rvcihjb21wX3N0ZXJlb19lbGlfbWFpbmVmZmVjdCRpdHRfY29tcF9nbWMpCgpnZ3Bsb3QoY29tcF9zdGVyZW9fZWxpX21haW5lZmZlY3QsIGFlcyhlbGlfc2VsZl9wbWMsIGZpdCwgZ3JvdXAgPSBpdHRfY29tcF9nbWMpKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgCiAgICAgICAgICAgICAgICBzaXplID0gLjcsIAogICAgICAgICAgICAgICAgc2UgPSBGQUxTRSwKICAgICAgICAgICAgICAgIGNvbG91ciA9ICJibGFjayIsIAogICAgICAgICAgICAgICAgYWVzKGxpbmV0eXBlID0gaXR0X2NvbXBfZ21jKSkgKwogICAgdGhlbWVfbWluaW1hbChiYXNlX3NpemUgPSAxMykgKwogICAgdGhlbWUobGVnZW5kLmtleS5zaXplID0gdW5pdCgxLCAiY20iKSkgKwogIHNjYWxlX2xpbmV0eXBlX21hbnVhbCgiVGFyZ2V0LWxldmVsIHRocmVhdCIsCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IGMoLTEuMDcsIDAsIDEuMDcpLCAKICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJMb3ciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkF2ZXJhZ2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhpZ2giKSwKICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBjKCJzb2xpZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGFzaGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb3R0ZWQiKSkgKwogICAgbGFicyh4ID0gIkVMSSByZXNwb25zZXMgZm9yIHNlbGYiLAogICAgICAgeSA9ICJFTEkgcmVzcG9uc2VzIGZvciB0YXJnZXQiKQpgYGAKCiMjIyBBc3N1bXB0aW9ucwoKYGBge3J9CiMgY2hlY2tpbmcgbm9ybWFsaXR5IG9mIGNvbmRpdGlvbmFsIHJlc2lkdWFscwpxcW5vcm0ocmVzaWR1YWxzKGNvbXBfZWxpX3N0ZXJlbyksIG1haW49IlEtUSBwbG90IGZvciBjb25kaXRpb25hbCByZXNpZHVhbHMiKQoKIyBjaGVja2luZyB0aGUgbm9ybWFsaXR5IG9mIHRoZSByYW5kb20gZWZmZWN0czoKcXFub3JtKHJhbmVmKGNvbXBfZWxpX3N0ZXJlbykkc3ViX2lkJGVsaV9zZWxmX3BtYywKICAgICAgIG1haW49IlEtUSBwbG90IGZvciB0aGUgc2VsZiByYW5kb20gZWZmZWN0IikKCiMgbG9va2luZyBhdCByYW5kb20gZWZmZWN0IGZvciBzdGVyZW86CnFxbm9ybShyYW5lZihjb21wX2VsaV9zdGVyZW8pJHN1Yl9pZCRlbGlfc3RlcmVvX3BtYywKICAgICAgIG1haW49IlEtUSBwbG90IGZvciB0aGUgc2VsZiByYW5kb20gZWZmZWN0IikKCnBsb3RfbW9kZWwoY29tcF9lbGlfc3RlcmVvLCB0eXBlPSdkaWFnJykKYGBgCgpIZWF2eSB0YWlsIGFuZCBvdXRsaWVycz8KCiMjIFRhcmcgY29uZGl0aW9uCgpgYGB7cn0KY29uZF9lbGlfc3RlcmVvIDwtIGxtZXIoZWxpX3RhcmdfcG1jIH4gZWxpX3NlbGZfcG1jKmVsaV9zdGVyZW9fcG1jKnRhcmdldF9jb25kaXRpb24gKyAjIGl0dCBkb2VzIG5vdCB3b3JrIGFzIGEgUkU7IG1vZGVsIGRvZXMgbm90IGNvbnZlcmdlCiAgICAgICAgICAgICAgICAgICAgICgwICsgZWxpX3NlbGZfcG1jICsgZWxpX3N0ZXJlb19wbWMgfCBzdWJfaWQpLCAKICAgICAgICAgICAgICAgICAgIGRhdGEgPSBjbGVhbl9kYXRhX2VsaSkgIyBTYW1lIGFzIGFib3ZlLCB3b3JrcyB3aXRoIGNsZWFuX2RhdGEgYnV0IG5vdCB0aGUgc21hbGxlciBkZiBzcGVjaWZpYyB0byB0aGlzIGFuYWx5c2lzCgoKc3VtbWFyeShjb25kX2VsaV9zdGVyZW8pCnRhYl9tb2RlbChjb25kX2VsaV9zdGVyZW8sCiAgICAgICAgICBkaWdpdHMgPSAzKQpgYGAKCiMjIyBDb21wYXJpbmcgdG8gbW9kZWwgd2l0aG91dCBzdGVyZW90eXBpbmcKCmBgYHtyfQphbm92YShjb25kX2VsaV9yYW5kc2xvcGVzLCBjb25kX2VsaV9zdGVyZW8pCmBgYAoKIyMjIFNpbXBsZSBTbG9wZXMKCmBgYHtyfQpzaW1wc2xvcGVzX2VsaV9zdGVyZW9fY29uZCA8LSBlbXRyZW5kcyhjb25kX2VsaV9zdGVyZW8sIH4gdGFyZ2V0X2NvbmRpdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyID0iZWxpX3NlbGZfcG1jIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPSB0YXJnX2xldmVscykKCgpzaW1wc2xvcGVzX2VsaV9zdGVyZW9fY29uZApwYWlycyhzaW1wc2xvcGVzX2VsaV9zdGVyZW9fY29uZCkKYGBgCgojIyMgVmlzdWFsaXphdGlvbgoKYGBge3J9CgojIGludGVyYWN0aW9uczo6aW50ZXJhY3RfcGxvdChjb21wY29uZF9lbGlfc3RlcmVvLCBwcmVkID0gZWxpX3NlbGZfcG1jLCBtb2R4ID0gaXR0X2NvbXBfZ21jLCBtb2QyID0gdGFyZ2V0X2NvbmRpdGlvbiwgaW50ZXJ2YWwgPSBUUlVFKQoKZWxpX3N0ZXJlb19jb25kIDwtIGVmZmVjdCgiZWxpX3NlbGZfcG1jOnRhcmdldF9jb25kaXRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgeGxldmVscyA9IGxpc3QodGFyZ2V0X2NvbmRpdGlvbiA9IGMoIkNPTlRST0wiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldBUk0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxPU1MiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2QgPSBjb25kX2VsaV9zdGVyZW8pCgplbGlfc3RlcmVvX2NvbmQgPC0gYXMuZGF0YS5mcmFtZShlbGlfc3RlcmVvX2NvbmQpCmVsaV9zdGVyZW9fY29uZCR0YXJnZXRfY29uZGl0aW9uIDwtIGFzLmZhY3RvcihlbGlfc3RlcmVvX2NvbmQkdGFyZ2V0X2NvbmRpdGlvbikKCmVsaV9zdGVyZW9fY29uZCAlPD4lIAogIG11dGF0ZSh0YXJnZXRfY29uZGl0aW9uID0gZm9yY2F0czo6ZmN0X3JlbGV2ZWwodGFyZ2V0X2NvbmRpdGlvbiwgYygiQ09OVFJPTCIsICJXQVJNIiwgIkxPU1MiKSkpCgp0YXJnZXRfbGFiZWxzIDwtIGMoIkNPTlRST0wiID0gIkNvbnRyb2wgdGFyZ2V0IiwKICAgICAgICAgICAgICAgICAgICJXQVJNIiA9ICJXYXJtIHRhcmdldCIsCiAgICAgICAgICAgICAgICAgICAiTE9TUyIgPSAiTG9zcyB0YXJnZXQiKQoKZ2dwbG90KGVsaV9zdGVyZW9fY29uZCwgYWVzKGVsaV9zZWxmX3BtYywgZml0LCBncm91cCA9IHRhcmdldF9jb25kaXRpb24pKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgCiAgICAgICAgICAgICAgICBzaXplID0gLjcsIAogICAgICAgICAgICAgICAgc2UgPSBGQUxTRSwKICAgICAgICAgICAgICAgIGNvbG91ciA9ICJibGFjayIsIAogICAgICAgICAgICAgICAgYWVzKGxpbmV0eXBlID0gdGFyZ2V0X2NvbmRpdGlvbikpICsKICAgIHRoZW1lX21pbmltYWwoYmFzZV9zaXplID0gMTMpICsKICAgIHRoZW1lKGxlZ2VuZC5rZXkuc2l6ZSA9IHVuaXQoMSwgImNtIikpICsKICBzY2FsZV9saW5ldHlwZV9tYW51YWwoIlRhcmdldCBWYXJpYWJsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IGMoIkNPTlRST0wiLCAiV0FSTSIsICJMT1NTIiksIAogICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoIkxlYXN0IHRocmVhdGVuaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpdW0gdGhyZWF0ZW5pbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhpZ2ggdGhyZWF0ZW5pbmciKSwKICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBjKCJzb2xpZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGFzaGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb3R0ZWQiKSkgKwogICAgbGFicyggeCA9ICJFTEkgcmVzcG9uc2VzIGZvciBzZWxmIiwKICAgICAgIHkgPSAiRUxJIHJlc3BvbnNlcyBmb3IgdGFyZ2V0IikKYGBgCgojIyMgQXNzdW1wdGlvbnMKCmBgYHtyfQojIGNoZWNraW5nIG5vcm1hbGl0eSBvZiBjb25kaXRpb25hbCByZXNpZHVhbHMKcXFub3JtKHJlc2lkdWFscyhjb25kX2VsaV9zdGVyZW8pLCBtYWluPSJRLVEgcGxvdCBmb3IgY29uZGl0aW9uYWwgcmVzaWR1YWxzIikKCiMgY2hlY2tpbmcgdGhlIG5vcm1hbGl0eSBvZiB0aGUgcmFuZG9tIGVmZmVjdHM6CnFxbm9ybShyYW5lZihjb25kX2VsaV9zdGVyZW8pJHN1Yl9pZCRlbGlfc2VsZl9wbWMsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHNlbGYgcmFuZG9tIGVmZmVjdCIpCgojIGxvb2tpbmcgYXQgcmFuZG9tIGVmZmVjdCBmb3Igc3RlcmVvOgpxcW5vcm0ocmFuZWYoY29uZF9lbGlfc3RlcmVvKSRzdWJfaWQkZWxpX3N0ZXJlb19wbWMsCiAgICAgICBtYWluPSJRLVEgcGxvdCBmb3IgdGhlIHNlbGYgcmFuZG9tIGVmZmVjdCIpCgpwbG90X21vZGVsKGNvbmRfZWxpX3N0ZXJlbywgdHlwZT0nZGlhZycpCmBgYAoKIyBDaGVja2luZyBlZmZlY3Qgb2YgcmVtb3ZpbmcgVU8gcGFydGljaXBhbnRzIC0gQkZJIHsudGFic2V0IC50YWJzZXQtZmFkZSAudGFic2V0LXBpbGxzfQoKIyMgTm8gc3RlcmVvdHlwaW5nCgojIyMgT25seSBjb21wb3NpdGUKCmBgYHtyfQpkYXRhX2JmaV9wcm9saWZpYyA8LSBjbGVhbl9kYXRhX2JmaSAlPiUgCiAgZmlsdGVyKGRhdGFfc2l0ZSAhPSAidW8iKSAlPiUgCiAgc2VsZWN0KHN1Yl9pZCwgYmZpX251bWJlciwgYmZpX3RhcmdfcG1jLCBiZmlfc2VsZl9wbWMsIGl0dF9jb21wX2dtYywKICAgICAgICAgdGFyZ2V0X2NvbmRpdGlvbiwgYmZpX3RhcmcsIGJmaV9zZWxmLCBiZmlfc3RlcmVvLCBiZmlfc3RlcmVvX3BtYykgJT4lIAogIHVuaXF1ZSgpICU+JSAKICBuYS5vbWl0KCkgCgpiZmlfbm9zdGVyZW9fY29tcF9wcm8gPC0gbG1lcihiZmlfdGFyZ19wbWMgfiBiZmlfc2VsZl9wbWMqaXR0X2NvbXBfZ21jICsKICAgICAgICAgICAgICAgICAgICAgKGJmaV9zZWxmX3BtYyB8IHN1Yl9pZCksIGRhdGEgPSBkYXRhX2JmaV9wcm9saWZpYykKc3VtbWFyeShiZmlfbm9zdGVyZW9fY29tcF9wcm8pCnRhYl9tb2RlbChiZmlfbm9zdGVyZW9fY29tcF9wcm8pCmBgYAoKRGlkIG5vdCBjaGFuZ2UKCiMjIyMgU2ltcGxlIFNsb3BlcwoKYGBge3J9CmJmaV9ub3N0ZXJlb19jb21wX3BybyA8LSBlbXRyZW5kcyhiZmlfbm9zdGVyZW9fY29tcF9wcm8gLCB+IGl0dF9jb21wX2dtYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyID0iYmZpX3NlbGZfcG1jIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPSBjKHRocmVhdF9sZXZlbHMpKQoKCmJmaV9ub3N0ZXJlb19jb21wX3BybwpgYGAKCkRpZCBub3QgY2hhbmdlCgojIyMgVGFyZ2V0IHZhcmlhYmxlCgpgYGB7cn0KYmZpX25vc3RlcmVvX3RhcmdfcHJvIDwtIGxtZXIoYmZpX3RhcmdfcG1jIH4gYmZpX3NlbGZfcG1jKnRhcmdldF9jb25kaXRpb24gKwogICAgICAgICAgICAgICAgICAgICAoYmZpX3NlbGZfcG1jIHwgc3ViX2lkKSwgZGF0YSA9IGRhdGFfYmZpX3Byb2xpZmljKQpzdW1tYXJ5KGJmaV9ub3N0ZXJlb190YXJnX3BybykKdGFiX21vZGVsKGJmaV9ub3N0ZXJlb190YXJnX3BybykKYGBgCgpEaWQgbm90IGNoYW5nZQoKIyMjIyBTaW1wbGUgU2xvcGVzCgpgYGB7cn0KYmZpX25vc3RlcmVvX3RhcmdfcHJvIDwtIGVtdHJlbmRzKGJmaV9ub3N0ZXJlb190YXJnX3BybywgfiB0YXJnZXRfY29uZGl0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgPSJiZmlfc2VsZl9wbWMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCA9IHRhcmdfbGV2ZWxzKQoKCmJmaV9ub3N0ZXJlb190YXJnX3BybyAKYGBgCgpEaWQgbm90IGNoYW5nZSAKCiMjIFN0ZXJlb3R5cGluZwoKIyMjIE9ubHkgY29tcG9zaXRlCgpgYGB7cn0KYmZpX3N0ZXJlb19jb21wX3BybyA8LSBsbWVyKGJmaV90YXJnX3BtYyB+IGJmaV9zZWxmX3BtYyppdHRfY29tcF9nbWMqYmZpX3N0ZXJlb19wbWMgKwogICAgICAgICAgICAgICAgICAgICAoYmZpX3NlbGZfcG1jICsgYmZpX3N0ZXJlb19wbWMgfCBzdWJfaWQpLCBkYXRhID0gZGF0YV9iZmlfcHJvbGlmaWMpCnN1bW1hcnkoYmZpX3N0ZXJlb19jb21wX3BybykKdGFiX21vZGVsKGJmaV9zdGVyZW9fY29tcF9wcm8pCmBgYAoKCkRpZCBub3QgY2hhbmdlCgojIyMjIFNpbXBsZSBTbG9wZXMKCmBgYHtyfQpiZmlfc3RlcmVvX2NvbXBfcHJvIDwtIGVtdHJlbmRzKGJmaV9zdGVyZW9fY29tcF9wcm8sIH4gaXR0X2NvbXBfZ21jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgPSJiZmlfc2VsZl9wbWMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCA9IHRocmVhdF9sZXZlbHMpCgoKYmZpX3N0ZXJlb19jb21wX3BybwpgYGAKCkRpZCBub3QgY2hhbmdlCgojIyMgYXJnZXQgQ29uZGl0aW9uCgpgYGB7cn0KYmZpX3N0ZXJlb190YXJnX3BybyA8LSBsbWVyKGJmaV90YXJnX3BtYyB+IGJmaV9zZWxmX3BtYyp0YXJnZXRfY29uZGl0aW9uKmJmaV9zdGVyZW9fcG1jICsKICAgICAgICAgICAgICAgICAgICAgKGJmaV9zZWxmX3BtYyB8IHN1Yl9pZCksIGRhdGEgPSBkYXRhX2JmaV9wcm9saWZpYykKc3VtbWFyeShiZmlfc3RlcmVvX3RhcmdfcHJvKQp0YWJfbW9kZWwoYmZpX3N0ZXJlb190YXJnX3BybykKYGBgCgpNb2RlbCBmYWlscyB0byBjb252ZXJnZSB3aXRoIHJhbmRvbSBlZmZlY3QgZm9yIHN0ZXJlbzsgRHJvcHBpbmcgcmFuZG9tIGVmZmVjdCBmb3Igc3RlcmVvLCBidXQgcmVzdWx0cyBhcHBlYXIgdGhlIHNhbWUKCiMjIyMgU2ltcGxlIFNsb3BlcwoKYGBge3J9CmJmaV9zdGVyZW9fdGFyZ19wcm8gPC0gZW10cmVuZHMoYmZpX3N0ZXJlb190YXJnX3BybywgfiB0YXJnZXRfY29uZGl0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgPSJiZmlfc2VsZl9wbWMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCA9IHRhcmdfbGV2ZWxzKQoKCmJmaV9zdGVyZW9fdGFyZ19wcm8gCmBgYAoKRGlkIG5vdCBjaGFuZ2UKCiMgTXVsdGljb2xpbmVhcml0eSBvZiBwcmVkaWN0b3JzIHsudGFic2V0IC50YWJzZXQtZmFkZSAudGFic2V0LXBpbGxzfQoKYGBge3J9CmNvcl9iZmkgPC0gY2xlYW5fZGF0YV9iZmkgJT4lIAogIHNlbGVjdChiZmlfc2VsZl9wbWMsIGJmaV9zdGVyZW9fcG1jLCBiZmlfdGFyZ19wbWMsIGl0dF9jb21wX2dtYykgJT4lIAogIHVuaXF1ZSgpICU+JSAKICByZW5hbWUoIkJGSTogU2VsZiIgPSBiZmlfc2VsZl9wbWMsCiAgICAgICAgICJCRkk6IFN0ZXJlbyIgPSBiZmlfc3RlcmVvX3BtYywKICAgICAgICAgIkJGSTogVGFyZ2V0IiA9IGJmaV90YXJnX3BtYywKICAgICAgICAgIlRocmVhdCBDb21wb3NpdGUiID0gaXR0X2NvbXBfZ21jKQoKY29ycmVsYXRpb25zX3ByZWRzIDwtIGNvcihjb3JfYmZpKQoKY29ycnBsb3QoY29ycmVsYXRpb25zX3ByZWRzLCAKICAgICAgICAgaXMuY29yciA9IFRSVUUsIAogICAgICAgICAjbWV0aG9kID0gIm51bWJlciIsIAogICAgICAgICBtZXRob2QgPSAnY29sb3InLAogICAgICAgICB0bC5jZXggPSAuODUsCiAgICAgICAgIHRsLmNvbCA9ICdibGFjaycsCiAgICAgICAgIGFkZGdyaWQuY29sID0gJ3doaXRlJywKICAgICAgICAgYWRkQ29lZi5jb2wgPSAnZ3JleTUwJykKYGBg